var tree,comboboxTree;
var setting = {
	data : {
		simpleData : {
			enable : true,
			idKey : "departmentid",
            pIdKey : "pid"
            
        },
        //请修改 setting.data.key.name
		// data : {
		// 	name : "mc"
        // },
        key:{
            name:"mc"
        },
        
		view : {
			dblClickExpand : false,// 双击节点图标展开节点
			selectedMulti : false
		}
	},
	callback : {
		onRightClick : function(event, treeId, treeNode) {//右键
			// 判断点击了tree的“空白”部分，即没有点击到tree节点上
			if (treeNode && !treeNode.noR) {
				tree.selectNode(treeNode);
				$('#mm').menu('show', {
					left : event.pageX,
					top : event.pageY
				});
			} 
			$('#mm').menu({
				onClick : function(item) {
					if (item.name == "add") {
                        openDialog("新建");
                        alert((tree.getSelectedNodes()[0].departmentid));
						$("#pid").val(tree.getSelectedNodes()[0].departmentid);
					}
					if (item.name == "update") {
						openDialog("修改");
                        
                        toUpdateDepartment(tree.getSelectedNodes()[0].departmentid)
					}
					if (item.name == "delete") {
                        
                        deleteDepartment();
					}
				}
			});
		},
		onClick: function(event, treeId, treeNode ){
			console.dir(treeNode);
	   if(treeNode.pid){

	
		initstuinfoTable('bj',treeNode.departmentid);
	   }
	   else{
		initstuinfoTable('yx',treeNode.departmentid);
	   }
	   
		   }

	},

};
var zNodes;




$(function($){

//alert('院系设置加载');
getZtreeData();

$("#navigatorPanel").panel({
    width : 250,
    height : getWindowSize()[1] - 20,
    title : "院系设置",
    tools : [ {
        iconCls : 'icon-add',
        handler : function() {
            openDialog("新增");
        }
    }]
});

$("#stuinfoPanel").panel({
    width : getWindowSize()[0] - 270,
    height : getWindowSize()[1] - 20,
    title : "学生信息"
    // tools : [ {
    //     iconCls : 'icon-add',
    //     handler : function() {
    //         openDialog("新增");
    //     }
    // }]
});

//初始化学生信息

initstuinfoTable();


//出生年月控件初始化

// $('#csny').datebox({
    
// });


});



function getZtreeData() {
	$.ajax({
		type : "post",
		async : false,
		url : "/getDepartmentList",
		dataType : "json",
		beforeSend:function(){
			//这里是开始执行方法，显示效果，效果自己写
			$.messager.progress({
					  title: '请稍候', 
					    msg: '数据加载中...', 
					    text: '进度.......' ,
					    interval:1000}
			); 
			},
			complete:function(){
			//方法执行完毕，效果自己可以关闭，或者隐藏效果
				$.messager.progress('close');
			},
		success : function(result) {
			zNodes = result.rows;
		}
	});
	tree = $.fn.zTree.init($("#tree"), setting, zNodes);
	tree.expandAll(true); 
}



function getWindowSize() {
	var myWidth = 0, myHeight = 0;
	if (typeof (window.innerWidth) == 'number') {
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if (document.documentElement
			&& (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if (document.body
			&& (document.body.clientWidth || document.body.clientHeight)) {
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	return ([ myWidth, myHeight ]);
}

function openDialog(title) {
	clearCache();
	$('#dialog').dialog({
		title : title,
		width : 450,
		height : 260,
		closed : false,
		cache : false,
		modal : true,
		buttons : [ {
			text : '保存',
			handler : function() {
				if ($('#id').val() == "") {
					addDepartment();
				} else {
                   
                    updateDepartment();
				}
			}
		}, {
			text : '关闭',
			handler : function() {
				$('#dialog').window('close');
			}
		} ]
	});
	
	
}


function openStuinfoDialog(title) {
	clearCache();
	$('#stuinfodialog').dialog({
		title : title,
		width : 450,
		height : 460,
		closed : false,
		cache : false,
		modal : true,
		buttons : [ {
			text : '保存',
			handler : function() {
				if ($('#stuinfoid').val() == "") {
					addStuinfo();
				} else {
                   
                    updateStuinfo()
				}
			}
		}, {
			text : '关闭',
			handler : function() {
				$('#stuinfodialog').window('close');
			}
		} ]
	});
	
	
}

function clearCache() {
	$('input').val("");
}


function addDepartment(){

	$.ajax({
		type : "post",
		url : "/addDepartment",
		data : {
			"department.mc" : $("#name").val(),
			"department.pid" :$("#pid").val(),
			"department.nj" : $("#nj").val(),
			"department.bh" : $("#bh").val(),
			
		},
		dataType : "json",
		beforeSend:function(){
			//这里是开始执行方法，显示效果，效果自己写
			$.messager.progress({
					  title: '请稍候', 
					    msg: '数据加载中...', 
					    text: '进度.......' ,
					    interval:1000}
			); 
			},
			complete:function(){
			//方法执行完毕，效果自己可以关闭，或者隐藏效果
				$.messager.progress('close');
			},
		success : function(result) {
			if (result.msg == true) {
				getZtreeData();
				$('#dialog').window('close');
            }
            else{
                alert('保存异常，请刷新后，重试')
            }
		}
	});




}


function deleteDepartment(){

	$.messager.confirm('确认', '您确认想要删除吗？', function(r) {
		if (r) {
			$.ajax({
				type : "post",
				url : "/deleteDepartment",
				data : {
					"department.departmentid" : tree.getSelectedNodes()[0].departmentid
				},
				dataType : "json",
				beforeSend:function(){
					//这里是开始执行方法，显示效果，效果自己写
					$.messager.progress({
							  title: '请稍候', 
							    msg: '数据加载中...', 
							    text: '进度.......' ,
							    interval:1000}
					); 
					},
					complete:function(){
					//方法执行完毕，效果自己可以关闭，或者隐藏效果
						$.messager.progress('close');
					},
				success : function(result) {
					if (result.msg == true) {
						getZtreeData();
					}
				}
			});
		}
	});


}


function toUpdateDepartment(id){


	$.ajax({
		type : "post",
		url : "getSingleDepartment",
		data : {
			"department.departmentid" : id
		},
		dataType : "json",
		beforeSend:function(){
			//这里是开始执行方法，显示效果，效果自己写
			$.messager.progress({
					  title: '请稍候', 
					    msg: '数据加载中...', 
					    text: '进度.......' ,
					    interval:1000}
			); 
			},
			complete:function(){
			//方法执行完毕，效果自己可以关闭，或者隐藏效果
				$.messager.progress('close');
			},
		success : function(result) {
			if (result.msg) {
				$("#id").val(result.msg.departmentid);
				$("#pid").val(result.msg.pid);
				$("#name").val(result.msg.mc);
				$("#bh").val(result.msg.bh);
				$("#nj").val(result.msg.nj);
				
				
			}
		}
	});



}


function updateDepartment(){


    $.ajax({
		type : "post",
		url : "upateDepartment",
		data : {
			"department.departmentid" : tree.getSelectedNodes()[0].departmentid,
			"department.mc" : $("#name").val(),
			"department.bh" :$("#bh").val(),
			"department.nj" :$("#nj").val(),
			"department.pid" : $("#pid").val(),
			
		},
		dataType : "json",
		beforeSend:function(){
			//这里是开始执行方法，显示效果，效果自己写
			$.messager.progress({
					  title: '请稍候', 
					    msg: '数据加载中...', 
					    text: '进度.......' ,
					    interval:1000}
			); 
			},
			complete:function(){
			//方法执行完毕，效果自己可以关闭，或者隐藏效果
				$.messager.progress('close');
			},
		success : function(result) {
			if (result.msg == true) {
				getZtreeData();
				$('#dialog').window('close');
			}
		}
	});


}



//学生信息表初始化


function initstuinfoTable(key,value){

	$('#stuinfoTable').datagrid({

		toolbar: [{
			iconCls: 'icon-add',
			text:'添加',
			handler:  function(){openStuinfoDialog('添加'),
			getDeptinfoByTree()
		
		}
		}],
		url:'getStuinlolist',
		queryParams: {
			'parm.key': key,
			'parm.value':value
		},
		pagination:true,
		columns:[[
			{field:'stuinfoid',title:'主键',width:100},
			{field:'xh',title:'学号',width:100},
			{field:'xm',title:'姓名',width:100},
			{field:'yx',title:'院系',width:100},
			{field:'bj',title:'班级',width:100},
			{field:'sfzh',title:'身份证号',width:100},
			{field:'xb',title:'性别',width:100},
			{field:'jg',title:'籍贯',width:100},
			{field:'mz',title:'民族',width:100},
			{field:'csny',title:'出生年月',width:100,
		formatter:function(value,row,index){
                   if(value){
					   return covertTimestampToDate(value);
				   }
				   else{
					   return '未填写';
				   }
                


		}},
			{field:'zzmm',title:'政治面貌',width:100},
			{field:'rdsj',title:'入党时间',width:100,
			formatter:function(value,row,index){
					   if(value){
						   return covertTimestampToDate(value);
					   }
					   else{
						   return '未入党';
					   }
					}},
			{field:'lxdh',title:'联系电话',width:100},
			{field:'opt', title:'操作',
			formatter: function(value,row,index){
			return "<a onclick=\"getSingleStuinfo('"+row.stuinfoid+"')\" >修改 </a> "+ 
			 "<a onclick=\"deleteStuinfo('"+row.stuinfoid+"')\"  >删除 </a>";
			          
		}
		}
		]]
	});
}


//添加学生信息

function addStuinfo(){
// alert(`添加学生信息`);
// //日期控件取值
// var csrq= $('#csny').datebox('getValue');
// alert(csrq);
// //下拉控件取值

// var mz=$('#mz').combobox('getValue');

// alert(mz);





var form=$('#stuinfoform :input').serialize();
//alert(form);
$.ajax({
	type : "post",
	url : "/addStuinfo",
	data : form,
	dataType : "json",
	beforeSend:function(){
		//这里是开始执行方法，显示效果，效果自己写
		$.messager.progress({
				  title: '请稍候', 
					msg: '数据加载中...', 
					text: '进度.......' ,
					interval:1000}
		); 
		},
		complete:function(){
		//方法执行完毕，效果自己可以关闭，或者隐藏效果
			$.messager.progress('close');
		},
	success : function(result) {
		if (result.msg == true) {
			initstuinfoTable();
			$('#stuinfodialog').window('close');
		}
		else{
			alert('保存异常，请刷新后，重试')
		}
	}
});




}
//获得院系信息
function getDeptinfoByTree(){
	var treevalue=tree.getSelectedNodes()[0];

	if(treevalue&&treevalue.pid){
   $('#yx').val(treevalue.pid);
   $('#bj').val(treevalue.departmentid);


	}
	else{
		alert('请选择该生所在班级');
	}



}


//获得单个学生信息

function getSingleStuinfo(id){

openStuinfoDialog('修改');

$.ajax({
	type : "post",
	url : "/getSingleStuinfo",
	data : {'stuinfo.stuinfoid':id},
	dataType : "json",
	beforeSend:function(){
		//这里是开始执行方法，显示效果，效果自己写
		$.messager.progress({
				  title: '请稍候', 
					msg: '数据加载中...', 
					text: '进度.......' ,
					interval:1000}
		); 
		},
		complete:function(){
		//方法执行完毕，效果自己可以关闭，或者隐藏效果
			$.messager.progress('close');
		},
	success : function(result) {
		if (result.stuinfo != "error") {
			//$('#stuinfoform').form('load',result.stuinfo);
$('#stuinfoid').val(result.stuinfo.stuinfoid);
$('#xh').val(result.stuinfo.xh);
$('#xm').val(result.stuinfo.xm);
$('#yx').val(result.stuinfo.yx);
$('#bj').val(result.stuinfo.bj);
$('#sfzh').val(result.stuinfo.sfzh);
//性别
$('#xb').combobox('select',result.stuinfo.xb);
$('#jg').val(result.stuinfo.jg);
//民族
$('#mz').combobox('select', result.stuinfo.mz);
$('#lxdh').val(result.stuinfo.lxdh);
//出生年月
var csny=result.stuinfo.csny;
if(csny){
	csny=covertTimestampToDate(result.stuinfo.csny);
	$('#csny').datebox('setValue', csny);
}

//
$('#zzmm').combobox('select', result.stuinfo.zzmm);	

//入党时间
var rdsj=result.stuinfo.rdsj;
if(rdsj){
	rdsj=covertTimestampToDate(result.stuinfo.rdsj);
	$('#rdsj').datebox('setValue', rdsj);
}






		}
		else{
			alert('异常，请刷新后，重试')
		}
	}
});








}

//修改学生信息

function updateStuinfo(){

	var form=$('#stuinfoform').serialize();
	//alert(form);
	$.ajax({
		type : "post",
		url : "/updateStuinfo",
		data : form,
		dataType : "json",
		beforeSend:function(){
			//这里是开始执行方法，显示效果，效果自己写
			$.messager.progress({
					  title: '请稍候', 
						msg: '数据加载中...', 
						text: '进度.......' ,
						interval:1000}
			); 
			},
			complete:function(){
			//方法执行完毕，效果自己可以关闭，或者隐藏效果
				$.messager.progress('close');
			},
		success : function(result) {
			if (result.msg == true) {
				initstuinfoTable();
				$('#stuinfodialog').window('close');
			}
			else{
				alert('保存异常，请刷新后，重试')
			}
		}
	});

}

//删除学生信息

function deleteStuinfo(id){
alert('删除'+id);

$.ajax({
	type : "post",
	url : "/deleteStuinfo",
	data : {'stuinfo.stuinfoid':id},
	dataType : "json",
	beforeSend:function(){
		//这里是开始执行方法，显示效果，效果自己写
		$.messager.progress({
				  title: '请稍候', 
					msg: '数据加载中...', 
					text: '进度.......' ,
					interval:1000}
		); 
		},
		complete:function(){
		//方法执行完毕，效果自己可以关闭，或者隐藏效果
			$.messager.progress('close');
		},
	success : function(result) {
		if (result.msg == true) {
			initstuinfoTable();
			//$('#stuinfodialog').window('close');
		}
		else{
			alert('保存异常，请刷新后，重试')
		}
	}
});




}


//时间戳转换

function covertTimestampToDate(value){

	if (null != value) {
		return (value.year + 1900) + "-" + (value.month % 12 + 1) + "-"
				+ value.date;
	}


}